package cn.windfly.don.pojo;

/**
 * 请求返回值对象，用于访问返回JSON格式，如果值为空则该值不显示，如：
 * <p>
 * {"code":1,"data":[{"name":"test"}]}
 * <p>
 * {"code":0,"msg":"内容为空"}
 * 
 * @author DFH
 *
 */
public class JsonResult {

	/**
	 * 信息码正常常量，1
	 */
	public static int CODE_SUCCESS = 1;

	/**
	 * 信息码错误常量，0
	 */
	public static int CODE_ERROR = 0;

	/**
	 * 信息码，正常：1，错误：0
	 */
	private int code;
	/**
	 * 返回业务数据内容
	 */
	private Object data;
	/**
	 * 错误信息内容，用于前端显示
	 */
	private String msg;

	public int getCode() {
		return code;
	}

	public void setCode(int code) {
		this.code = code;
	}

	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data;
	}

	private JsonResult() {
		super();
	}

	/**
	 * 生成正常返回内容
	 * 
	 * @param obj
	 *            内容值
	 * @return {"code":1,"data":内容值}
	 */
	public static JsonResult newSuccessResult(Object obj) {
		obj = obj == null ? "" : obj;
		JsonResult jsonResult = new JsonResult();
		jsonResult.setCode(CODE_SUCCESS);
		jsonResult.setData(obj);
		return jsonResult;
	}

	/**
	 * 生成正常返回内容
	 * 
	 * @param obj
	 *            内容值
	 * @return {"code":1,"data":内容值}
	 */
	public static JsonResult newSuccessResult() {
		return newSuccessResult("");
	}

	/**
	 * 生成错误返回内容
	 * 
	 * @param msg
	 *            错误内容
	 * @return {"code":0,"msg":错误内容}
	 */
	public static JsonResult newErrorResult(String msg) {
		JsonResult jsonResult = new JsonResult();
		jsonResult.setCode(CODE_ERROR);
		jsonResult.setMsg(msg);
		return jsonResult;
	}

	public boolean hasError() {
		return code == CODE_ERROR;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

}
